This invention relates generally to parallel processing, and more particularly to parallel processing utilizing correlated data values.
Generally, there has been a need for greater speed at which computer programs are executed on computers. A computer typically has at least one processor, which is the part of a computer that usually runs the instructions that make up a computer program. In what is known as sequential or serial processing, the instructions that make up a computer program are executed one at a time by a processor of a computer. That is, a first instruction is executed, then a second instruction is executed, until the program is finished. Therefore, in sequential or serial processing, a manner by which execution speed of programs can be increased is to increase the speed at which the processor of the computer executes instructions.
In another type of processing, known as parallel processing, increased execution speed of computer programs is achieved by executing instructions of a computer program in parallel with one another. Thus, for example, a first instruction may be executed by a first processor of the computer at the same time as a second instruction is executed by a second processor (or, a different part of the first processor), then a third instruction may be executed by the first processor at the same time as a fourth instruction is executed by the second processor (or, the different part of the first processor), etc.
Parallel processing is, however, generally not as common-place as sequential processing. Computer programmers, for example, are typically not as experienced in developing computer programs that take advantage of parallel processing as they are in writing programs that are to be sequentially processed. Thus, there has been generally more emphasis placed on increasing the instruction execution speed of processors themselves to achieve increased execution speed of computer programs, rather than on utilizing parallel processing to achieve increased executed speed of computer programs.
The present invention relates to parallel processing utilizing correlated data values. One embodiment of the invention includes a method. The method renders active a correlated data values pair comprising a key value and a value correlated with the key value. The method next performs a task utilizing the value correlated with the key value in parallel with the task utilizing the key value. The method then renders inactive the correlated data values pair. Other embodiments of the invention include methods, systems and processors of varying scope.